﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FastDATA;

namespace CursoUNICEUB
{
    public partial class AtivarNoticia : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (String.IsNullOrEmpty(Request.QueryString["ID"]))
                {
                    Util.showMessage(this, "Código da notícia é inválido", "../Default.aspx");
                }
                else
                {
                    int ID;
                    try
                    {
                        ID = Convert.ToInt32(Request.QueryString["ID"]);
                    }
                    catch (Exception)
                    {
                        Util.showMessage(this, "Código da notícia é inválido", "../Default.aspx");
                        return;
                    }

                    if (Session["aluno"] == null)
                        Util.showMessage(this, "Usuário não logado", "../Account/Login.aspx?lastpage=AtivarNoticia.aspx?ID=" + ID);
                    else
                    {
                        DEAluno aluno = (DEAluno)Session["aluno"];
                        if (aluno.Administrador)
                            carregaNoticia(ID);
                        else
                            Util.showMessage(this, "Apenas administradores podem entrar nesta página", "../Default.aspx");
                    }
                }
            }
        }

        protected void carregaNoticia(int ID)
        {
            try
            {
                DENovidade novidade;

                using (DCCursoDataContext banco = new DCCursoDataContext())
                {
                    var q = from e in banco.DENovidades
                            where e.Codigo.Equals(ID)
                            select e;

                    novidade = q.FirstOrDefault();

                    this.lblTitulo.Text = novidade.Titulo;
                    this.lblSubTitulo.Text = novidade.SubTitulo;
                    this.lblTexto.Text = novidade.Texto.Replace(Environment.NewLine, "<br/>");
                    this.imgNoticia.ImageUrl = novidade.Imagem;
                    this.imgNoticia.AlternateText = novidade.Titulo;
                }
            }
            catch (Exception)
            {
                Util.showMessage(this, "Houve um erro no momento de carregar as notícias", "../Default.aspx");
            }
        }

        protected void btnAtivar_Click(object sender, EventArgs e)
        {
            int ID;
            try
            {
                ID = Convert.ToInt32(Request.QueryString["ID"]);
            }
            catch (Exception)
            {
                Util.showMessage(this, "Código da notícia é inválido", "../Default.aspx");
                return;
            }
            
            DENovidade novidade;

            using (DCCursoDataContext banco = new DCCursoDataContext())
            {
                var q = from n in banco.DENovidades
                        where n.Codigo.Equals(ID)
                        select n;

                novidade = q.FirstOrDefault();
                novidade.Ativo = true;

                banco.SubmitChanges();
                Util.showMessage(this, "Notícia ativada com sucesso", "../Novidades.aspx");
            }
        }

        protected void btnDeletar_Click(object sender, EventArgs e)
        {
            int ID;
            try
            {
                ID = Convert.ToInt32(Request.QueryString["ID"]);
            }
            catch (Exception)
            {
                Util.showMessage(this, "Código da notícia é inválido", "../Default.aspx");
                return;
            }

            DENovidade novidade;

            using (DCCursoDataContext banco = new DCCursoDataContext())
            {
                var q = from n in banco.DENovidades
                        where n.Codigo.Equals(ID)
                        select n;

                novidade = q.FirstOrDefault();
                
                banco.DENovidades.DeleteOnSubmit(novidade);
                banco.SubmitChanges();
                Util.showMessage(this, "Notícia excluída com sucesso", "../Novidades.aspx");
            }
        }
    }
}